package cn.virens;

import cn.virens.common.util.exception.APIException;
import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.text.StrUtil;

import java.io.File;

public class UpdateThis {
    public static void main(String[] args) {
        String p = "E:\\project-ccqlk\\ccqlk-website";

        for (File f : FileUtil.loopFiles(p, UpdateThis::filter)) {
            String ctx = FileUtil.readUtf8String(f);

            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.test.build.database.abstr.AbstractGenerator", "cn.virens.common.project.generator.database.abstr.AbstractGenerator");

            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.components.entity.PageParamUser", "cn.virens.common.mybatis.entity.param.PageParamUser");
            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.components.entity.PageResultUtil", "cn.virens.common.mybatis.entity.result.PageResultUtil");

            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.components.uuid.UuidManage", "cn.virens.common.project.base.uuid.UuidManage");

            ctx = StrUtil.replace(ctx, "cn.virens.common.project.base.entity.PageParamUser", "cn.virens.common.mybatis.entity.param.PageParamUser");

            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.auth.TenantChildModel", "cn.virens.common.project.base.auth.TenantChildModel");
            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.auth.TenantBaseModel", "cn.virens.common.project.base.auth.TenantBaseModel");
            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.auth.TenantUtil", "cn.virens.common.project.base.auth.TenantUtil");

            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.test.build.enums.EnumScan", "cn.virens.common.project.generator.enums.EnumScan");

            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.utils.enums.EnumUtil", "cn.virens.common.project.base.utils.enums.EnumUtil");
            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.utils.tree.TreeUtil", "cn.virens.common.project.base.utils.tree.TreeUtil");
            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.utils.MapConverUtil", "cn.virens.common.project.base.utils.MapConverUtil");
            ctx = StrUtil.replace(ctx, "cn.virens.common.dubbo.base.utils.GeoHashUtil", "cn.virens.common.project.base.utils.GeoHashUtil");

            FileUtil.writeUtf8String(ctx, f);
        }
    }

    private static boolean filter(File pathname) throws APIException {
        var suffix = FileNameUtil.getSuffix(pathname);

        return StrUtil.equalsAny(suffix, "java");
    }
}
